package org.JQbitorrentClinet.interfaces;

import org.JQbitorrentClinet.pojo.search.SearchJob;
import org.JQbitorrentClinet.pojo.search.SearchJobResult;
import org.JQbitorrentClinet.pojo.search.SearchJobStatus;
import org.JQbitorrentClinet.pojo.search.SearchPlugin;

import java.util.List;

public interface SearchProxy {
    SearchJob startSearch(String pattern, List<String> plugins);
    SearchJob startSearch(String pattern);
    SearchJob startSearch(String pattern,String category);
    SearchJob startSearch(String pattern, List<String> plugins, String category);
    boolean stopSearch(Integer id);
    SearchJobResult getSearchResult(Integer id);
    SearchJobStatus getSearchStatus(Integer id);
    List<SearchJobStatus> getSearchStatuses();
    boolean deleteSearch(Integer id);
    List<SearchPlugin> getSearchPlugins();
    boolean installSearchPlugin(String url);
    boolean installSearchPlugins(List<String> urls);
    boolean removeSearchPlugins(List<String> names);
    boolean removeSearchPlugin(String name);
    boolean enableSearchPlugins(List<String> names, boolean enabled);
    boolean enableSearchPlugin(String name, boolean enabled);
    boolean updateSearchPlugins();
}
